package com.quectel.sdk.dahua9100.monitor.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * channelCode:类型string。通道编码。
 * <p>
 * channelId:类型string。通道id。
 * <p>
 * channelName:类型string。通道名称。
 * <p>
 * gpsX:类型double。经度。
 * <p>
 * gpsY:类型double。维度。
 * <p>
 * capTime:类型string。抓拍时间。
 * <p>
 * imgUrl:类型string。原图url。
 * <p>
 * imgUrlEx: 类型string。原图地址扩展。双网单平台的情况下，表示外网地址
 * <p>
 * faceImgUrl:类型string。人脸图片url。
 * <p>
 * faceImgUrlEx: 类型string。人脸图片地址扩展。双网单平台的情况下，表示外网地址
 * <p>
 * recordId:类型string。抓拍记录唯一id。
 * <p>
 * faceLeft:类型int。有可能为空，人脸在场景大图中的坐标，0-8191描述坐标系。左上角x坐标。
 * <p>
 * faceTop:类型int。有可能为空，人脸在场景大图中的坐标，0-8191描述坐标系。左上角y坐标。
 * <p>
 * faceRight:类型int。有可能为空，人脸在场景大图中的坐标，0-8191描述坐标系。右下角x坐标。
 * <p>
 * faceBottom:类型int。有可能为空，人脸在场景大图中的坐标，0-8191描述坐标系。右下角y坐标。
 * <p>
 * extRecordId:类型string。外部关联id，表示和datasource中的记录的关联键，如过车记录的id。
 * <p>
 * age:类型int。识别年龄。
 * <p>
 * fringe:类型int。刘海状态;0-无，1-有。
 * <p>
 * eye:类型int。眼睛状态;0-闭眼，1-睁眼。
 * <p>
 * mouth:类型int。嘴巴状态;0-闭嘴，1-张嘴。
 * <p>
 * beard:类型int。胡子状态;0-没胡子，1-有胡子。
 * <p>
 * mask:类型int。口罩状态;0-没戴口罩，1-戴口罩。
 * <p>
 * glasses:类型int。眼镜状态;0-没眼镜，1-眼镜，2-墨镜。
 * <p>
 * emotion:类型int。表情特征，1-微笑，2-愤怒，3-悲伤，4-厌恶，5-害怕，6-惊讶，7-正常，8-大笑，9-高兴，10-困惑，11-尖叫。
 * <p>
 * similarity:类型double。相似度，取值范围为[0-1]。
 * <p>
 * gender:类型int。性别代码，0-未知性别；1-男性；2-女性；9-未说明的性别。
 *
 * @author rananxin
 * @email ryan.ran@quectel.com
 * @date 2022/11/11 14:02
 */
@Data
public class SnapFaceRecordResp {

    private String queryId;
    private Integer totalCount;
    private List<ResultsCls> results;

    @NoArgsConstructor
    @Data
    public static class ResultsCls {
        private int age;
        private int beard;
        @JsonFormat(pattern = "yyyyMMdd'T'HHmmss'Z'", timezone = "GMT+8")
        private Date capTime;
        private String channelCode;
        private String channelId;
        private String channelName;
        private int emotion;
        private String extRecordId;
        private int eye;
        private double faceBottom;
        private String faceImgUrl;
        private String faceImgUrlEx;
        private double faceLeft;
        private double faceRight;
        private double faceTop;
        private int fringe;
        private int gender;
        private int glasses;
        private double gpsX;
        private double gpsY;
        private String imgUrl;
        private String imgUrlEx;
        private int mask;
        private int mouth;
        private String recordId;
        private Double similarity;
    }
}
